Class Player
class Player
{
//1.欠缺計算總值的程式碼、2.欠缺存取飢餓度的程式碼
//property 金子50、銀子25、銅10
private int CountGold;
private int CountSilver;
private int CountCopper;
//get存取totalvalue
private int TotalValue;
public int totalValue
{
get
{
TotalValue = 50 * CountGold + 25 * CountSilver + 10 * CountCopper;
return TotalValue;
}
}
//get 、set存取hungerRate,必須介於 0~100 之間
private int HungerRate;
public int hungerRate
{
get { return HungerRate;}
set
{
if (value >= 100)
HungerRate = 100;
else if(value <= 0)
HungerRate = 0;
else
HungerRate = value;
}
}
//constructor
public Player()
{
this.CountGold = 0;
this.CountSilver = 0;
this.CountCopper = 0;
this.HungerRate = 80;
}
public void PickaGold()
{
CountGold++;
}
public void PickaSilver()
{
CountSilver++;
}
public void PickaCopper()
{
CountCopper++;
}
}
private void Button1_Click(object sender, EventArgs e)
{
Player player = new Player();
player.PickaGold();
player.hungerRate += 10; // 餓了,飢餓度上升
player.PickaSilver();
player.hungerRate += 10; // 餓了,飢餓度上升
player.PickaSilver();
player.hungerRate += 10; // 餓了,飢餓度上升
MessageBox.Show("飢餓度:" + player.hungerRate + ",身上物品總值:" + player.totalValue);
player.PickaCopper();
player.hungerRate -= 60; // 吃了一個可以減少 60 飢餓度的東西
player.PickaGold();
player.hungerRate -= 60; // 吃了一個可以減少 60 飢餓度的東西
MessageBox.Show("飢餓度:" + player.hungerRate + ",身上物品總值:" + player.totalValue);
}
圖中車子停進去立體停車場在吐出一個號碼牌,那這個跟封裝性什麼關係呢?今天我把車子放進立體停車場我不需要知道裡面的運作方式
打包、把東西封起來隱藏內部的實作細節並提供介面供使用
把所有物間變數設定成private,只有提供public method操作或 Get&Set 存取器來供外界操作變數
1.保護物件內的變數
2.物件內部的實作細節隱藏起來,使用者只要會用就好了
結語:謝謝大家內心看完,如有錯誤請跟我說我會趕緊修正謝謝,下回開始進行物件導向的繼承性囉!